OPC Data Client components may, under certain circumstances, display a user interface "by itself", without you having to make a specific method call. Such unsolicited user interaction only happens when the current process is running in user interactive mode, as reported by the Environment.UserInteractive Property. In non-interactive mode, the components assume reasonable default user responses. In addition, you can turn off specific user interactions by setting corresponding parameters in the code.
Usually, these are notifications or confirmations related to conditions that cannot be anticipated upfront, such as the certificate exchange in the OPC UA connection process. As OPC Data Client controls the connections and diconnections automatically, and when subscriptions are in effect, also makes re-connections, you - as a developer - cannot generally predict when such user interaction may be needed.
There are following situations that may trigger an unsolicited user interaction related to OPC Unified Architecture (OPC UA) operations:
There is no unsolicited user interaction related to OPC Classic operations.
The way OPC Data Client presents the unsolicited user interaction depends on the environment your application is running in. There is an interaction provider for each such supported environment. OPC Data Client interrogates the available interaction providers to see which one should perform the interaction, selects the appropriate interaction provider and then uses it to actually communicate with the user. Following interaction providers are available:
Each interaction provider (except for the Null Interaction Provider) can be turned on or off, and may have additional configurable parameters.
All unsolicited user interaction (with exception of rare messages and confirmations related to client application instance certificate checks) has a timeout associated with it, and a default user response is assumed should the user not respond in time. This means that under normal circumstances, the current activity cannot be blocked indefinitely if the user fails to respond. In fact, this behavior also guarantees that the activity will eventually proceed even if the Environment.UserInteractive Property incorrectly claimed that the process is running in user interactive mode. The timeout is configurable by the AcceptNotificationTimeout Property in the UAUserInteractionParameters Class. In order to obtain or modify this parameter, access the UserInteractionParameters Property of EngineParameters Property of EasyUAClient.SharedParameters Property.
When there is a problem with the license key, or when the trial license runtime expires. Instead, such problems are primarily reported as other errors, using the channels for the programming model used. For example, in Imperative Programming Model, the single-argument method throws an exception, a multiple-argument method returns the error in the Exception Property of the OperationResult Class, or with subscriptions, the error is reported in the Exception Property of the OperationEventArgs Class. It is up to the calling code to handle such situations.
In addition, in Windows Forms applications and certain other Windows desktop application, OPC Data Client components display a notification in Windows system tray for certain license-related issues: